import axios from "axios";

// 配置项
const axiosOption = {
  // 开发环境
  baseURL: "/api",
  // 重定向
  withCredentials: true,
  // 超时时间
  // timeout: 3000,
};

// 创建一个单例
const instance = axios.create(axiosOption);

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 添加请求头
    const data = JSON.parse(localStorage.getItem("user"));
    const { token } = data || {};
    config.headers.Authorization = "Bearer " + token;
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    // 对响应错误做点什么
    if (error.response && error.response.status === 401) {
      // 处理401未授权状态码，可以重定向到登录页面或执行其他操作
      const comfirm = confirm("登录已过期，请重新登录！");
      if (comfirm) {
        window.location.href = "/";
      }
      // 清除本地存储的suo信息
      localStorage.removeItem("user");
      localStorage.removeItem("token");
      localStorage.removeItem("files1");
      localStorage.removeItem("username");
      localStorage.removeItem("id");
      localStorage.removeItem("nickname");
    }
    return Promise.reject(error);
  }
);

export default instance;
